#pragma once

#include "stdafx.h"

struct TEFixture
{
	TEFixture()
		:click(3)
	{
		hWnd = ::GetConsoleWindow();
		draw.Init(hWnd, &text, &tm, &scroll, &segManager, &wm, &mark);
		caret.Init(hWnd, &text, &tm, &scroll, &wm);
		tm.Init(hWnd, &text, &scroll, &wm);
		align.Init(&tm, &wm);
		text.Init(&align, &tm, &segManager, &sel, &mark);
		scroll.Init(hWnd, &wm, &text, &tm);
		segManager.Init(&text, &sel);
		wm.Init(&tm, &text);
		wm.SetData(300, 200);
	}
	
	Text text;
	TextMetrics tm;
	Draw draw;
	Caret caret;
	Align align;
	WindowMetrics wm;
	ScrollBar scroll;
	Selection sel;
	SegmentManager segManager;
	Bookmark mark;
	ClickDetector click;
	ExecutionHistory exHistory;
	HWND hWnd;
};